package com.yuri.news.service;

import java.util.List;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import com.yuri.news.entity.Classify;

public interface ClassifyService {
	/**
	 * 添加分类
	 * @param classify
	 * @return	实例化的分类信息
	 */
	Classify saveClassify(Classify classify);
	
	/**
	 * 更新分类信息
	 * @param classify
	 * @return	成功返回true 失败返回false（失败表示无此分类）
	 */
	Boolean updateClassify(Classify classify);
	/**
	 * 根据id删除分类
	 * @param id
	 * @param flag 是否删除所有子菜单
	 * @return	成功返回true 失败返回false(失败表示无)
	 */
	Boolean deleteClassify(Long id, Boolean flag);

	/**
	 * 根据id查询分类信息
	 * @param id
	 * @return	符合要求的分类（无则返回null）
	 */
	Classify getClassifyById(Long id);
	
	/**
	 * 获取所有的一级分类
	 * @param page
	 * @return 所有的已经分类
	 */
	Page<Classify> listClassByAllOne(Pageable page);
	
	/**
	 * 获取所有的一级分类
	 * @return 所有的已经分类
	 */
	List<Classify> listClassByAllOne();
	
	/**
	 * 根据id查询其下的子分类
	 * @param id
	 * @return	符合要求的分类信息（无则返回空）
	 */
	List<Classify> listDowClassify(Long id);
	
	/**
	 * 根据id查询其下的子分类
	 * @param id	
	 * @param page	分页信息
	 * @return	符合要求的分类信息（无则返回空）
	 */
	Page<Classify> listDowClassify(Long id, Pageable page);
	/**
	 * 查询所有分类信息
	 * @return
	 */
	List<Classify> listClassify();
	
	/**
	 * 查询所有分类信息
	 * @param page	分页信息
	 * @return	符合要求的分类
	 */
	Page<Classify> listClassify(Pageable page);
}
